package config

import (
	"flag"
	"fmt"

	"gitee.com/use_common/logs"
	"github.com/spf13/viper"
)

var Viper *viper.Viper

func init() {
	// 定义一个字符串类型的命令行标志（flag），默认为空字符串
	env := flag.String("env", "", "Environment to load configuration for (e.g., prod)")

	// 解析命令行参数
	flag.Parse()

	// 初始化 Viper 实例
	Viper = viper.New()

	// 根据命令行参数设置配置文件名称
	configName := "config"
	if *env != "" {
		configName = fmt.Sprintf("config.%s", *env)
	}

	// 设置配置文件相关信息
	Viper.SetConfigName(configName) // 不带扩展名的配置文件名
	Viper.SetConfigType("yaml")     // 配置文件类型
	Viper.AddConfigPath("./config") // 指定查找配置文件的路径

	// 读取配置文件
	if err := Viper.ReadInConfig(); err != nil {
		logs.Std.Errorf("fatal error config file: %s", err)
	}
}
